
var api = {}
// API地址：'http://118.190.69.117:7703/hbo'
// 备用地址：'http://192.168.0.120:8080/hbo'
var API = 'http://118.190.69.117:7703/hbo'

// 生成随机uuid
api.uuid = function() {
  var s = []
  var hexDigits = '0123456789abcdef'
  for (var i = 0; i < 36; i++) {
    s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1)
  }
  s[14] = '4'  // bits 12-15 of the time_hi_and_version field to 0010
  s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1)  // bits 6-7 of the clock_seq_hi_and_reserved to 01
  s[8] = s[13] = s[18] = s[23] = '-'
  var uuid = s.join('')
  return uuid
}
// POST
api.callJson = function(uri) {
  return function(data) {
    return new Promise(function(resolve, reject) {
      if (typeof data == 'string') data = data
      else data = JSON.stringify(data)
      fetch(API + uri, {
        body: data,
        method: 'POST',
        headers: {
          'Content-Type': 'application/json'
        }
      }).then(function(res) {
        if (res.ok) return res.json()
        else reject(res)
      }).then(function(res) {
        if (!res) reject(404)
        if (typeof res.code == 'undefined') reject(res)
        if (res.code == 1) resolve(res.result)
        else reject(res.message)
      }).catch(function(e) {
        reject(e)
      })
    })
  }
}
// GET
api.getJson = function(uri) {
  return function() {
    return new Promise(function(resolve, reject) {
      fetch(API + uri).then(function(res) {
        if (res.ok) return res.json()
        else reject(res)
      }).then(function(res) {
        if (!res) reject(404)
        if (typeof res.code == 'undefined') reject(res)
        if (res.code == 1) resolve(res.result)
        else reject(res.message)
      }).catch(function(e) {
        reject(e)
      })
    })
  }
}

module.exports = api
